Remove GtkWindow::hide-titlebar-when-maximized
authorMatthias Clasen <mclasen@redhat.com>
Mon, 1 May 2017 16:57:05 +0000 (12:57 -0400)
committerMatthias Clasen <mclasen@redhat.com>
Mon, 1 May 2017 17:26:46 +0000 (13:26 -0400)
This was only every implemented under X11, and with CSD,
this is clearly in the application realm. We should not
pretend that we can support it on the toolkit level.

https://bugzilla.gnome.org/show_bug.cgi?id=775061

demos/gtk-demo/application.c
demos/gtk-demo/menus.ui
docs/reference/gtk/gtk4-sections.txt
gtk/gtkwindow.c
gtk/gtkwindow.h
testsuite/gtk/window.c

index 6233f7267520ed6cc47322d5f08efe467236b32f..217947f9a1a0222c927a4daff78f9adcc13756b3 100644 (file)
@@ -291,19 +291,6 @@ change_theme_state (GSimpleAction *action,
   g_simple_action_set_state (action, state);
 }
 
-static void
-change_titlebar_state (GSimpleAction *action,
-                       GVariant      *state,
-                       gpointer       user_data)
-{
-  GtkWindow *window = user_data;
-
-  gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window),
-                                               g_variant_get_boolean (state));
-
-  g_simple_action_set_state (action, state);
-}
-
 static void
 change_radio_state (GSimpleAction *action,
                     GVariant      *state,
@@ -322,7 +309,6 @@ static GActionEntry app_entries[] = {
 };
 
 static GActionEntry win_entries[] = {
-  { "titlebar", activate_toggle, NULL, "false", change_titlebar_state },
   { "shape", activate_radio, "s", "'oval'", change_radio_state },
   { "bold", activate_toggle, NULL, "false", NULL },
   { "about", activate_about, NULL, NULL, NULL },
index a0aecfa1e65fbff7c22b893faa279a15d1fab6e1..16ca40bad9597bf22d05e781b28ad0fb78ef02c2 100644 (file)
           <attribute name="label" translatable="yes">_Prefer Dark Theme</attribute>
           <attribute name="action">app.dark</attribute>
         </item>
-        <item>
-          <attribute name="label" translatable="yes">_Hide Titlebar when maximized</attribute>
-          <attribute name="action">win.titlebar</attribute>
-        </item>
         <submenu>
           <attribute name="label" translatable="yes">_Color</attribute>
           <section>
index 3c0e27cce47d4050a29fc2a2754224297fb4c108..e74f9c5c263a08a13e6f23b67800403049c7e1ad 100644 (file)
@@ -4749,7 +4749,6 @@ gtk_window_set_position
 gtk_window_set_transient_for
 gtk_window_set_attached_to
 gtk_window_set_destroy_with_parent
-gtk_window_set_hide_titlebar_when_maximized
 gtk_window_set_screen
 gtk_window_get_screen
 gtk_window_is_active
@@ -4797,7 +4796,6 @@ gtk_window_get_default_icon_list
 gtk_window_get_default_icon_name
 gtk_window_get_default_size
 gtk_window_get_destroy_with_parent
-gtk_window_get_hide_titlebar_when_maximized
 gtk_window_get_icon
 gtk_window_get_icon_list
 gtk_window_get_icon_name
index 56da76f21de176335296c8af7af46def68608ae8..091b7f06f6249168fd60c05cae70208a12a6519c 100644 (file)
@@ -238,7 +238,6 @@ struct _GtkWindowPrivate
   guint    focus_on_map              : 1;
   guint    fullscreen_initially      : 1;
   guint    has_user_ref_count        : 1;
-  guint    hide_titlebar_when_maximized : 1;
   guint    iconify_initially         : 1; /* gtk_window_iconify() called before realization */
   guint    is_active                 : 1;
   guint    maximize_initially        : 1;
@@ -1787,9 +1786,6 @@ gtk_window_set_property (GObject      *object,
     case PROP_DESTROY_WITH_PARENT:
       gtk_window_set_destroy_with_parent (window, g_value_get_boolean (value));
       break;
-    case PROP_HIDE_TITLEBAR_WHEN_MAXIMIZED:
-      gtk_window_set_hide_titlebar_when_maximized (window, g_value_get_boolean (value));
-      break;
     case PROP_ICON:
       gtk_window_set_icon (window,
                            g_value_get_object (value));
@@ -1901,9 +1897,6 @@ gtk_window_get_property (GObject      *object,
     case PROP_DESTROY_WITH_PARENT:
       g_value_set_boolean (value, priv->destroy_with_parent);
       break;
-    case PROP_HIDE_TITLEBAR_WHEN_MAXIMIZED:
-      g_value_set_boolean (value, priv->hide_titlebar_when_maximized);
-      break;
     case PROP_ICON:
       g_value_set_object (value, gtk_window_get_icon (window));
       break;
@@ -3800,74 +3793,6 @@ gtk_window_get_destroy_with_parent (GtkWindow *window)
   return window->priv->destroy_with_parent;
 }
 
-static void
-gtk_window_apply_hide_titlebar_when_maximized (GtkWindow *window)
-{
-#ifdef GDK_WINDOWING_X11
-  GdkWindow *gdk_window;
-  gboolean setting;
-
-  setting = window->priv->hide_titlebar_when_maximized;
-  gdk_window = _gtk_widget_get_window (GTK_WIDGET (window));
-
-  if (GDK_IS_X11_WINDOW (gdk_window))
-    gdk_x11_window_set_hide_titlebar_when_maximized (gdk_window, setting);
-#endif
-}
-
-/**
- * gtk_window_set_hide_titlebar_when_maximized:
- * @window: a #GtkWindow
- * @setting: whether to hide the titlebar when @window is maximized
- *
- * If @setting is %TRUE, then @window will request that it’s titlebar
- * should be hidden when maximized.
- * This is useful for windows that don’t convey any information other
- * than the application name in the titlebar, to put the available
- * screen space to better use. If the underlying window system does not
- * support the request, the setting will not have any effect.
- *
- * Note that custom titlebars set with gtk_window_set_titlebar() are
- * not affected by this. The application is in full control of their
- * content and visibility anyway.
- * 
- * Since: 3.4
- **/
-void
-gtk_window_set_hide_titlebar_when_maximized (GtkWindow *window,
-                                             gboolean   setting)
-{
-  g_return_if_fail (GTK_IS_WINDOW (window));
-
-  if (window->priv->hide_titlebar_when_maximized == setting)
-    return;
-
-  window->priv->hide_titlebar_when_maximized = setting;
-  gtk_window_apply_hide_titlebar_when_maximized (window);
-
-  g_object_notify_by_pspec (G_OBJECT (window), window_props[PROP_HIDE_TITLEBAR_WHEN_MAXIMIZED]);
-}
-
-/**
- * gtk_window_get_hide_titlebar_when_maximized:
- * @window: a #GtkWindow
- *
- * Returns whether the window has requested to have its titlebar hidden
- * when maximized. See gtk_window_set_hide_titlebar_when_maximized ().
- *
- * Returns: %TRUE if the window has requested to have its titlebar
- *               hidden when maximized
- *
- * Since: 3.4
- **/
-gboolean
-gtk_window_get_hide_titlebar_when_maximized (GtkWindow *window)
-{
-  g_return_val_if_fail (GTK_IS_WINDOW (window), FALSE);
-
-  return window->priv->hide_titlebar_when_maximized;
-}
-
 static GtkWindowGeometryInfo*
 gtk_window_get_geometry_info (GtkWindow *window,
                              gboolean   create)
@@ -5753,10 +5678,8 @@ update_csd_visibility (GtkWindow *window)
   if (priv->title_box == NULL)
     return FALSE;
 
-  visible = !priv->fullscreen &&
-            !(priv->titlebar == priv->title_box &&
-              priv->maximized &&
-              priv->hide_titlebar_when_maximized);
+  visible = !priv->fullscreen;
+
   gtk_widget_set_child_visible (priv->title_box, visible);
 
   return visible;
@@ -6016,10 +5939,7 @@ gtk_window_map (GtkWidget *widget)
   gdk_window_set_keep_below (gdk_window, priv->below_initially);
 
   if (priv->type == GTK_WINDOW_TOPLEVEL)
-    {
-      gtk_window_set_theme_variant (window);
-      gtk_window_apply_hide_titlebar_when_maximized (window);
-    }
+    gtk_window_set_theme_variant (window);
 
   /* No longer use the default settings */
   priv->need_default_size = FALSE;
index 771feeeb0541eb83163cba0df535289844ebfbad..0f247e034943bc58a1b613222a6289eb5ea7699f 100644 (file)
@@ -227,11 +227,6 @@ void       gtk_window_set_destroy_with_parent  (GtkWindow           *window,
                                                 gboolean             setting);
 GDK_AVAILABLE_IN_ALL
 gboolean   gtk_window_get_destroy_with_parent  (GtkWindow           *window);
-GDK_AVAILABLE_IN_3_4
-void       gtk_window_set_hide_titlebar_when_maximized (GtkWindow   *window,
-                                                        gboolean     setting);
-GDK_AVAILABLE_IN_3_4
-gboolean   gtk_window_get_hide_titlebar_when_maximized (GtkWindow   *window);
 GDK_AVAILABLE_IN_ALL
 void       gtk_window_set_mnemonics_visible    (GtkWindow           *window,
                                                 gboolean             setting);
index 70fdf761ef78a82e19e490dd55f2815d3a4313ee..59454cc150190f44c79f0c957d64fd3b0681f8ae 100644 (file)
@@ -348,66 +348,6 @@ on_map_event (GtkWidget *window)
   return FALSE;
 }
 
-static void
-test_hide_titlebar_when_maximized (void)
-{
-  GtkWidget *window;
-
-  g_test_bug ("740287");
-
-  /* test that hide-titlebar-when-maximized gets set appropriately
-   * on the window, if it's set before the window is realized.
-   */
-
-  window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
-
-  g_signal_connect (window,
-                    "map-event",
-                    G_CALLBACK (on_map_event),
-                    NULL);
-
-  gtk_window_set_hide_titlebar_when_maximized (GTK_WINDOW (window), TRUE);
-
-  gtk_widget_show (window);
-
-  g_timeout_add (100, stop_main, NULL);
-  gtk_main ();
-
-#ifdef GDK_WINDOWING_X11
-  if (GDK_IS_X11_SCREEN (gtk_widget_get_screen (window)))
-    {
-      Atom type;
-      gint format;
-      gulong nitems;
-      gulong bytes_after;
-      gulong *hide = NULL;
-
-      XGetWindowProperty (gdk_x11_get_default_xdisplay (),
-                          GDK_WINDOW_XID (gtk_widget_get_window (window)),
-                          gdk_x11_get_xatom_by_name ("_GTK_HIDE_TITLEBAR_WHEN_MAXIMIZED"),
-                          0,
-                          G_MAXLONG,
-                          False,
-                          XA_CARDINAL,
-                          &type,
-                          &format,
-                          &nitems,
-                          &bytes_after,
-                          (guchar **) &hide);
-
-      g_assert_cmpint (type, !=, None);
-      g_assert_cmpint (type, ==, XA_CARDINAL);
-      g_assert_cmpint (format, ==, 32);
-      g_assert_cmpint (nitems, ==, 1);
-      g_assert_cmpint (hide[0], ==, 1);
-
-      XFree (hide);
-    }
-#endif
-
-  gtk_widget_destroy (window);
-}
-
 int
 main (int argc, char *argv[])
 {
@@ -428,7 +368,6 @@ main (int argc, char *argv[])
   g_test_add_func ("/window/show-hide", test_show_hide);
   g_test_add_func ("/window/show-hide2", test_show_hide2);
   g_test_add_func ("/window/show-hide3", test_show_hide3);
-  g_test_add_func ("/window/hide-titlebar-when-maximized", test_hide_titlebar_when_maximized);
 
   return g_test_run ();
 }